文字换行
本节代码
overflow-wrap(word-wrap) 通用换行控制- 是否保留单词
word-break单词内换行控制- 中文句子也是一个单词
white-space空白符换行控制
| 属性 | 说明 | value |
|---|---|---|
overflow-wrap |
指定当一个不能被分开的字符串太长而不能填满其容器时,为防止其溢出,浏览器是否允许该单词中断换行 | normalbreak-wordanywhere |
word-wrap |
overflow-wrap 的别名,功能相同 |
normalbreak-wordanywhere |
word-break |
指定文字内的单词是否允许在单词内断行 | normalbreak-allkeep-allbreak-word |
white-space |
设置如何处理元素内的空白符 | normalnowrapprepre-wrappre-linebreak-spaces |
overflow-wrap 和 word-wrap
-
CSS 属性
overflow-wrap应用于行级元素,用来设置浏览器是否应该在一个本来不能断开的字符串中插入换行符,以防止文本溢出其行向盒。 -
这个属性原本属于微软扩展的一个非标准、无前缀的属性,叫做
word-wrap,后来在大多数浏览器中以相同的名称实现。目前它已被更名为overflow-wrap,word-wrap相当于其别称。 -
overflow-wrap属性用于指定当一个不能被分开的字符串太长而不能填满其容器时,为防止其溢出,浏览器是否允许该单词中断换行。normal是默认值,只在允许的断字点换行,如空格、连字符等。break-word允许在单词或 URL 内部换行。anywhere允许在任意字符间断开,连非空格字符都可以。
备注
与 word-break 相比,overflow-wrap 仅在无法将整个单词放在自己的行而不会溢出的情况下才会产生换行。
| 值 | 说明 |
|---|---|
normal |
只在允许的断字点换行 (如空格和连字符)。这是默认值。 |
break-word |
在长单词或 URL 地址内部进行换行。 |
anywhere |
允许在任意字符间断开,包括非空格字符中间断开。 |
word-break
- CSS 属性
word-break指定了怎样在单词内断行。normal使用默认的换行规则。break-all对于 non-CJK (CJK 指中文/日文/韩文) 文本,可在任意字符间断行。keep-allCJK 文本不断行。Non-CJK 文本表现同normal。break-word**已经弃用。**效果是word-break: normal和overflow-wrap: anywhere的合,不论overflow-wrap的值是多少。
备注
与 word-break: break-word 和 overflow-wrap: break-word(详见 overflow-wrap)对比,word-break: break-word 将在文本可能溢出其容器的确切位置创建一个断点。
| 值 | 说明 |
|---|---|
normal |
使用默认的换行规则。 |
break-all |
对于 non-CJK (CJK 指中文/日文/韩文) 文本,可在任意字符间断行。 |
keep-all |
CJK 文本不断行。Non-CJK 文本表现同 normal。 |
break-word |
**已经弃用。**效果是 word-break: normal 和 overflow-wrap: anywhere 的合,不论 overflow-wrap 的值是多少。 |
white-space
- CSS
white-space属性用于设置如何处理元素内的空白字符。
备注
要使单词可以在其内部被截断,请使用 overflow-wrap、word-break 或 hyphens 代替。
- 这个属性指定了两件事:
- 空白字符是否 合并,以及如何合并。
- 是否换行,以及如何换行。
white-space属性可以被指定为从下面的值列表中选择的单个关键字,或者是表示white-space-collapse和text-wrap属性的简写的两个值。normal:连续的空白符会被 合并。源码中的换行符会被当作空白符来处理。并根据填充行框盒子的需要来换行。nowrap:和normal一样 合并 空白符,但阻止源码中的文本换行。pre:连续的空白符会被保留。仅在遇到换行符或<br>元素时才会换行。pre-wrap:连续的空白符会被保留。在遇到换行符或<br>元素时,或者根据填充行框盒子的需要换行。pre-line:连续的空白符会被 合并。在遇到换行符或<br>元素时,或者根据填充行框盒子的需要换行。break-spaces:与pre-wrap的行为相同,除了:- 任何保留的空白序列总是占用空间,包括行末的。
- 每个保留的空白字符后(包括空白字符之间)都可以被截断。
- 这样保留的空间占用空间而不会挂起,从而影响盒子的固有尺寸(最小内容——
min-content——大小和最大内容——max-content——大小)。
下面的表格总结了各种 white-space 关键字值的行为:
| 换行符 | 空格和制表符 | 文本换行 | 行末空格 | 行末的其他空白分隔符 | |
|---|---|---|---|---|---|
normal |
合并 | 合并 | 换行 | 移除 | 挂起 |
nowrap |
合并 | 合并 | 不换行 | 移除 | 挂起 |
pre |
保留 | 保留 | 不换行 | 保留 | 不换行 |
pre-wrap |
保留 | 保留 | 换行 | 挂起 | 挂起 |
pre-line |
保留 | 合并 | 换行 | 移除 | 挂起 |
break-spaces |
保留 | 保留 | 换行 | 换行 | 换行 |
空格 和 其他空白分隔符 之间存在区别。定义如下:
- 空格:空格(U+0020)、制表符(U+0009)和分段符(例如换行)
- 其他空白分隔符:Unicode 中定义的所有其他空格分隔符(已定义为空格的分隔符除外)。
如果空白字符被挂起,那么它可能会影响框的固有尺寸的测量结果。